/**
 * 将所有的action 集合在一起
 */
import * as createTypes from './createTypes'
import axios from 'axios'
import { fromJS } from 'immutable'

//单独抽离出来的action 对象
const changeList = (data) => ({  //这里必须是一个对象
    type: createTypes.GET_LIST,
    data: fromJS(data),   //这是从获取到的总数据拿其中的data 数据
    totalPage: Math.ceil(data.length/10)  //拿到总数据的长度 进行分页
})



export const searchFocus = () => ({  
    // 这时候action 是一个对象
    type: createTypes.CHANGE_INPUT_FOCUSED
})

export const searchBlur = () => ({
    type: createTypes.CHANGE_INPUT_BLUR
})

export const mouseEnter = () => ({
    type: createTypes.MOUSE_ENTER
})
export const mouseLeave = () => ({
    type: createTypes.MOUSE_LEAVE
})
//换一换分页
export const changePage = (page) => ({
    type: createTypes.CHANGE_PAGE,
    page: page
})


//异步获取 action 数据
export const getList = () => {
    //安装中间件以后，action可以直接返回函数
    return (dispatch) => {
        axios.get('/api/headerList.json')
        .then(res=>{
            const result = res.data //这是axios 获取到的数据
            // const action = changeList(result.data)
            // dispatch(action)
            dispatch(changeList(result.data))
        })
    }
}


